Generic motor control system

ABSTRACT

A method for controlling the operation of a motor utilizing a generic motor control module. The method includes sampling at least one motor operating criterion during operation of the motor and executing a generic control algorithm at a predetermined periodic interval. Execution of the algorithm provides a firing angle, duty cycle, or other suitable control function solution for an electronic valve for each periodic interval, thereby controlling the behavior of the motor. Additionally, the method includes firing the electronic valve at the calculated timing during each periodic interval such that the motor functions in accordance with desired motor operational parameters.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a divisional of U.S. patent application Ser. No.11/159,948 filed on Jun. 23, 2005, which claims priority to U.S. patentapplication Ser. No. 10/426,589 filed on Apr. 30, 2003 (now U.S. Pat.No. 7,102,703). The disclosures of the above applications areincorporated herein by reference.

FIELD OF INVENTION

The invention relates generally to systems and methods for controllingthe operation of a motor. More specifically, the invention relates to ageneric motor control module suitable for use with any of a variety ofmotors in any of a variety of motor applications.

BACKGROUND OF THE INVENTION

Typically, motors are controlled by dedicated analog or digitalcircuitry configured to control a specific motor in a specificapplication. For example, one dedicated circuit would be required tocontrol a specific motor utilized in a power saw application, whileanother dedicated circuit would be required to control a different motorutilized in a drill application. Or further yet, one dedicated circuitwould be required to control the motor utilized in a power sawapplication, while a different circuit would be required to utilize thesame motor in a table saw application. Normally, each dedicated analogor digital control circuit would be constructed of different components.These components would typically have differing values and/or controlsoftware in order to create a unique operational characteristic profilefor each motor and each specific motor application.

The requirement of different dedicated control circuitry for differentmotors and different applications greatly increases manufacturing,engineering design, parts, inventory and labor costs. This is because,up until the present time, no one ‘generic’ or ‘universal’ controlcircuit or module was available that could be easily tailored to meetthe operational needs of different types of applications (e.g. drills,saws, grinders, etc.). Thus, there has existed a need for a singlecontrol circuit or module that can easily be tailored to control andoptimize performance of a given one of a plurality of differing motorsin a given one of a plurality of differing motor applications thatrequire different operational characteristics.

BRIEF SUMMARY OF THE INVENTION

In one preferred embodiment of the present invention a method isprovided for controlling the operation of a motor utilizing a genericmotor control module. The method includes sampling at least one motoroperating criterion (i.e. one dynamic pertinent motor input) duringoperation of the motor and executing a control algorithm at apredetermined periodic interval. Execution of the algorithm provides anoperational timing for an electronic valve for each periodic interval,thereby controlling the operational behavior of the motor. For example,execution of the algorithm determines a firing angle solution for theelectronic valve if the motor is an AC motor or a duty cycle for theelectronic valve if the motor is DC motor. Additionally, the methodincludes firing the electronic valve at the calculated firing angleduring each periodic interval such that the motor functions inaccordance with desired operational parameters.

In another preferred embodiment, a generic motor control module isprovided. The generic motor control module includes a memory device forstoring a control algorithm. A processor is included for executing thecontrol algorithm to determine an operational timing for an electronicvalve at a predetermined periodic interval. For example, execution ofthe algorithm determines a firing angle solution for the electronicvalve if the motor is an AC motor or a duty cycle for the electronicvalve if the motor is DC motor. The generic motor control moduleadditionally includes an alterable memory device for storing at leastone function coefficient used during execution of the control algorithm.The function coefficient is specific to a particular motor operationand/or application such that the control module is suitable forcontrolling the operation of any one of a plurality of motors in any oneof a plurality of motor applications (e.g. different power tools).

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will become more fully understood from thedetailed description and accompanying drawings, wherein;

FIG. 1 is a simplified circuit diagram of a generic motor controlmodule, in accordance with one preferred embodiment of the presentinvention;

FIG. 2 is a flow chart illustrating the general operation of the genericmotor control module in an AC implementation, as shown in FIG. 1;

FIG. 3 is a simplified circuit diagram of the generic motor controlmodule 10 as utilized in a DC implementation, wherein the motor 14 is aDC motor; and

FIG. 4 is a flow chart illustrating the general operation of the genericmotor control module in a DC implementation, shown in FIG. 3.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 is a simplified circuit diagram of a generic motor control module10, in accordance with one preferred embodiment of the presentinvention. The generic motor control module 10 is connectable to a motor14 that can be any one of a plurality of motors used in any one of aplurality of applications. The motor 14 can be an AC motor, asillustrated in FIG. 1 or a DC motor as illustrated in FIG. 3. Thegeneric motor control module 10 is also referred to herein as theuniversal control module 10 because it is universally applicable suchthat it is capable of controlling any of the plurality of motors, suchas motor 14, in any of the plurality of motor applications orimplementations. More specifically, the generic motor control module 10is capable of controlling motors of differing size, ratings and/ortypes, wherein the motors can be utilized in any of a plurality ofapplications or implementations without altering components, componentvalues, and/or hard coded control software. Preferably, the genericmotor control module 10 is a digital control module that includes adigital control circuit, generally indicated at 18.

For example, the generic motor control module 10 can be used to controlthe motor of a heavy duty half-inch drill that has a high gear ratio andgenerates a high degree of torque, or to control the motor of aquarter-inch drill that has a relatively low gear ratio and generatesonly a small degree of torque. Similarly, the generic motor controlmodule 10 can be utilized to control a motor used in a plurality ofapplications. For example, if a specific model of motor were used inboth a power saw application and a drill press application, each withdifferent operational parameters, the generic motor control module 10can be used to control the motor in both the power saw and the drillpress without the need to change any electrical components, componentvalues, or to alter control software associated with the module 10. Forsimplicity, the generic motor control module 10 will be referred tohereinafter as simply the motor control module 10.

In an AC implementation, as shown in FIG. 1, the motor control module 10is connectable to an AC power source, via the power cord (not shown), atan AC mains node 20 a and a neutral node 20 b. The control circuit 18 ofthe motor control module 10 includes a power supply 22 that suppliespower to a controller 26, e.g. a microcontroller. The controller 26includes a processor 30, e.g. a microprocessor, programmed to control anelectronic valve 34, such as a triac, a field effect transistor (FET),an insulated gate bipolar transistor (IGBT), a silicon-controlledrectifier (SCR), or various voltage and/or current control devices. Thecontroller 26 can be any suitable controller or microcontroller. Onemicrocontroller especially well suited for use with control circuit 18is an ATtiny26 microcontroller commercially available from ATMEL, Inc.of San Jose, Calif. To control operation of the motor 14, the controller26 controls the amount of current, and therefore voltage, applied to themotor 14 by controlling the operation of the electronic valve 34.

The control circuit 18 further includes a shunt resistor 38 and avoltage divider circuit 42 comprised of resistors 46, 48, 50 andclamping diodes 52 and 54. The controller 26 includes an amplifier 56used to amplify the voltage across the shunt resistor 38 used by thecontroller 26 to measure the current flowing through the electronicvalve 34 and the motor 14. The voltage divider circuit 42 is coupled viaa circuit line 62 to the controller 26. The resistors 46, 48 and 50divide the AC source voltage to a voltage level usable by the controller26, and the clamping diodes 52 and 54 protect the controller 26 fromdamage if a voltage spike occurs in the AC source voltage. Thecontroller 26 senses an AC zero crossing by measuring the dividedvoltage from the AC power source via the voltage divider circuit 42.Alternatively, the controller 26 can sense an AC zero crossing bymonitoring a digital signal provided by a subsystem, wherein the digitalsignal would represent a zero crossing of the AC voltage. The controlcircuit 18 also includes a pair of pull-up resistors 58 and 60 used tocondition the voltage input at a ‘port 1’ and a ‘port 2’ of thecontroller 26.

Generally, the motor control module 10 controls the operation of themotor 14 by switching the motor current on and off at periodic intervalsin relation to the zero crossing of the AC current or voltage waveform,via the controller 26 and control signals applied to a control input 34a of the electronic valve 34. These periodic intervals are caused tooccur in synchronism with the AC waveform and are measured in terms of aconduction angle, measured as a number of degrees. The conduction angledetermines the point within the AC waveform at which the electronicvalve 34 is fired, i.e. turned on, thereby delivering electrical energyto the motor 14. More specifically, the conduction angle determines thepoint at which the electronic valve 34 is fired within a selected periodof the AC waveform for which operation of the electronic valve 34 isbased, for example, a half-cycle of the AC waveform. The electronicvalve 34 turns off at the conclusion of the selected period. Thus, theconduction angle is measured from the point of firing of the electronicvalve 34 to the point of extinguishing at the end of the selectedperiod.

The point at which the electronic valve is fired is also referred to inthe art, and will alternatively be referred to herein, as the firingangle of the electronic valve 34. The firing angle is measured from thebeginning of the selected period to the point within the selected periodat which the electronic valve 34 is fired. Numerically, the conductionangle and the firing angle are complements of one another. Generally,the conduction angle and firing angle are measured in units of degrees,but could also be measured in radians, or in unitless fractions of theselected period.

For example, a conduction angle of 180° per half cycle of the AC cyclecorresponds to a condition of full conduction, in which electronic valve34 is fired such that the entire, uninterrupted alternating current isapplied to the motor 14. That is, the electronic valve 34 is fired suchthat current flows through the electronic valve 34 for the entire halfcycle of the AC input signal. Similarly, a 90° conduction anglecorresponds to developing the supply voltage across the motor 14commencing in the middle of a given half cycle, and thus the electronicvalve 34 is fired so that approximately half of the available energy isdelivered to the motor. Conduction angles below 90° correspond to firingof the electronic valve 34 later in a given half cycle so that evenlesser quantities of energy are delivered to the motor 14.

The motor control module 10 controls the operation of the motor 14 whena motor control switch 64, e.g. a tool On/Off switch, is placed in aclosed (i.e. ‘On’) position, thereby allowing current to flow throughthe motor 14. Although motor control switch 64 is illustrated as beinglocated between the node 20 a and the motor 14, alternatively, the motorcontrol switch 64 can be located between the node 20 a and the AC mains.In one preferred embodiment, the control circuit 18 determines a firingangle solution for the electronic valve 34 for each half cycle of the ACline voltage. Alternatively, the control circuit 18 could determine thefiring angle solution for each full cycle, each one and a half cycle,each two cycles, or any other predetermined periodic interval of the ACline voltage signal based on multiples of the half cycle. Although thepresent invention will be described herein as determining the firingangle solution based on a half cycle, it should be understood that thedetermination of the firing angle solution could be based on anymultiple of the half cycle and remain within the scope of the presentinvention.

To determine the firing angle solution for each half cycle such that themotor 14 will operate in a desired manner, various pertinent inputs,i.e. motor operating criterion, are measured during operation of themotor 14. The various pertinent inputs are referred to herein as“Dynamicisms” and include, but are not limited to, such things as aclosed loop dial, an open loop dial, an amount of current flowingthrough the motor 14 during operation, the voltage across the motor 14during operation, an amount of torque provided by the motor 14, and aspeed of the motor 14. For example, a first input 58 a could be a closedloop dial signal, or a tachometer signal or any other dynamicism signal.Likewise, a second input 58 b could be a motor speed signal, or an openloop dial signal or any other dynamicism signal. Dynamicisms include anymotor operational value or parameter that has an effect on thecalculation of the firing angle solution. As the dynamicisms changeduring operation, the firing angle solution for each subsequent halfcycle, or other periodic interval based on half cycles, will alsochange.

To generate a timing solution for the electronic valve 34, i.e. thetiming and duration for which the electronic valve 34 is turned on, theprocessor 30 executes a universal generic control algorithm stored in amemory device 66 included in the controller 26. More specifically, thefiring angle solution for each half cycle, or multiple thereof, of theAC line during operation of the motor 14, the processor 30 executes auniversal generic firing angle control algorithm. Alternatively, thememory device 66 could be included in the motor control module 10external to the controller 26. In various embodiments the memory device66 is a functionally non-volatile, non-alterable memory device. Forexample, memory device 66 can be a read only memory (ROM) device, aFlash Memory device or a one time programmable (OTP) device. In onepreferred embodiment, the generic firing angle algorithm is hard-codedin the memory device 66 during manufacturing of the motor control module10. That is, the generic algorithm is stored in non-volatile memorydevice 66 as part of the process for manufacturing the motor controlmodule 10 and can not be altered or modified once it is stored in thememory device 66. Thus, the generic algorithm is applicable to determinethe firing angle solution for any of a plurality of motor applicationsin which any of a plurality of motors, such as motor 14, are controlledby the motor control module 10. More specifically, the generic algorithmdetermines the firing angle solution for any motor 14 in which the motorcontrol module 10 is installed, such that the motor 14 operatesaccording to parameters specifically required for the particular motorapplication.

In various alternative embodiments the generic algorithm can be storedin alterable memory that allows data to be stored, read and altered suchas flash memory, erasable programmable read-only memory (EPROM) orelectrically erasable programmable read-only memory (EEPROM).

The processor 30 executes the generic algorithm utilizing thedynamicisms as inputs, thereby determining a firing angle solutionspecific to the particular motor 14 and the specific motor application.Generally, the generic algorithm can be expressed by the followingequation:

Firing angle solution=f(dynamicisms)

It should be understood that the notation ‘f( )’ means ‘a function of ()’, where the contents of the parentheses are the argument of thefunction f.

For example, in one preferred embodiment, the generic algorithm could bemore specifically expressed by the following equation.

Firing angle solution=f(f(switch position)+(f(dial setting 1)+f(dialsetting 2)+f(current)+f(voltage)+f(tachometer)+ . . . f(dynamicismn)+K)+M;

where ‘switch position’ refers to the position of the motor controlswitch 64, ‘dial setting 1’ refers to closed loop desired speed, ‘dialsetting 2’ refers to open loop firing angle clamp, ‘current’ refers tothe amount of current flowing through the motor 14, ‘voltage’ refers toa voltage value across the motor 14, ‘tachometer’ refers to atachometric period or rate of rotational speed of the motor, and K and Mare offsets or constants to bias the firing angle into the correctworking range of operation for the particular implementation of themotor 14. The tachometer period is the time period that is directlyproportional to the inverse of the speed of the motor 14. The motorcontrol switch 64 controls the operational status of the motor 14. Thatis, if the motor control switch 64 is in an open position, the motor 14is in an ‘Off’ operational status, while if the motor control switch 64is in a closed position, the motor 14 is in an ‘On’ operational status.

The controller 26 samples the dynamicisms using appropriate sensors orsensing circuits (not shown) for each dynamicism and utilizes theprocessor 30 to execute the generic algorithm to determine the properfiring angle solution for the electronic valve 34 for each half cycle ofthe AC line voltage. Additionally, the generic algorithm utilizes atleast one motor function coefficient stored in a memory device 68 todetermine the firing angle solution such that the motor 14 functions inaccordance with motor operational parameters specific to the particularapplication of the motor 14. Generally, the motor operational parametersof a given application will require the use of more than one functioncoefficient in the execution of the generic algorithm. In variousembodiments, the motor function coefficient is a soft-coded functioncoefficient and the memory device 68 is an alterable memory device thatallows data to be stored, read and altered such as flash memory,erasable programmable read-only memory (EPROM) or electrically erasableprogrammable read-only memory (EEPROM). Alternatively, the memory device68 can be a functionally non-volatile, non-alterable memory device, suchas a read only memory (ROM) device, a Flash Memory device or a one timeprogrammable (OTP) device.

In one preferred embodiment, the function coefficient(s) are stored inthe alterable memory device 68 subsequent to the manufacturing of themotor control module 10 and subsequent to the motor control module 10being implemented in a particular application. For example, if thecontrol module 10 is utilized to control the motor 14 of a hammer drill,the function coefficient(s) specific to the motor operational parametersof the hammer drill are not stored in the alterable memory device 68until after the hammer drill has been assembled including the motorcontrol module 10. Thus, after the exemplary hammer drill is assembledincluding the motor control module 10, an external device (not shown)capable of communicating with the controller 26 is used to program (i.e.store) the function coefficient(s) in the alterable memory device 68.The external device communicates the function coefficient(s) to thealterable memory device 68 over any suitable means for datatransmission. For example, the function coefficient(s) can betransmitted from the external device to the alterable memory device 68over the power cord of the tool, e.g. the hammer drill. The externaldevice can be any computer-based device capable of transmitting data,such as a laptop computer, a hand-held computer or any other programmingdevice. Alternatively, the module 10 could be programmed after itsmanufacture but before being implemented in a particular application.

A further derivation of the generic algorithm incorporating the functioncoefficient(s) can be expressed by summing the products of thedynamicism(s) and associated function coefficient(s), as illustrated bythe following equation.

Firing angle solution=f((switch position*C ₀)+((dial setting 1*C₁)+(dial setting 2*C ₂)+(current*C ₃)+(voltage*C ₄)+(tachometer*C ₅)+ .. . (dynamicism n*C _(n))+C _(n+1))+C _(n+2));

where the value for ‘switch position’ equals one (1) if the motorcontrol switch 64 is in a closed (i.e. ‘On’) position and zero (0) ifthe motor control switch 64 is in an open (i.e. ‘Off’) position.Additionally, C₀, C₁, C₂, C₃, C₄, C₅ . . . C_(n), C_(n+1), C_(n+2) arefunction coefficients specific to a particular application of the motor14, so that the motor 14 operates in accordance with desired motoroperational parameters of the particular application.

Thus, if a particular dynamicism is to have no impact on the firingangle solution for the electronic valve 34 in a given application, thefunction coefficient of that particular dynamicism would be zero (0).For example, if the motor control module 10 is implemented in anapplication where open loop control is desirable, C₂, C₃, C₄ and C₅, inthe above generic algorithm, would be zero (0). However, if the motorcontrol module 10 is implemented in an application where closed loopcontrol is desirable, but there is no tachometer utilized in theapplication, then C₁, C₂, C₃ and C₄ would have values calculated tooperate the motor 14 in accordance with desired motor operationalparameters, and C₅ would be zero (0).

Therefore, in one preferred embodiment, the processor 30 executes thegeneric algorithm during each half cycle of the AC power source,implementing the function coefficient(s), stored in alterable memorydevice 68, as a constant value(s) in the algorithm, and utilizing thedynamicism(s) as an input variable(s) to determine the firing anglesolution for the electronic valve 34, for each given half cycle.Alternatively, the controller 26 could execute the generic algorithmbased on multiples of the half cycle, as opposed to executing thegeneric algorithm during each half cycle. In this instance each firingangle solution calculated will be used to fire the electronic valve 34for two or more consecutive half cycles. That is, although theelectronic valve 34 will be fired during each half cycle based on thefiring angle solution generated by execution of the generic algorithm,the generic algorithm will not be executed during each half cycle.

Since the dynamicism(s) is a variable, the calculated firing anglesolution will change during operation of the motor 14 due to variationsin load requirements for the motor 14 during operation and changes infunction settings of the device in which the motor 14 is installed. Forexample, if the load requirement of the motor 14 changes duringoperation, the dynamicism for the current and/or the voltage being usedby the motor 14 will change leading to a change in the firing anglesolution to compensate for the change in power needed by the motor 14.Additionally, if a user changes the speed setting on a power drill, theassociated dynamicism(s) will change, thereby altering the firing anglesolution generated by the generic algorithm.

Although, in the various preferred embodiments described herein, themotor control module 10 has been described to execute the genericalgorithm shown above, it should be appreciated that the particularalgorithm described is exemplary only. As such the description of theexemplary algorithm does not exhaust all possible algorithms for use inimplementing the motor control module 10, in accordance with the presentinvention. Accordingly, changes in the algorithm described above may bemade by those skilled in the art without departing from the scope of theinvention. For example, the generic algorithm could utilize a look-uptable as a transfer function to generate firing angle solutions, asdescribed below.

FIG. 2 is flow chart 100 illustrating the general operation of the motorcontrol module 10 (shown in FIG. 1), in accordance with one preferred ACembodiment of the present invention. In a practical application of themotor control module 10, on each given half cycle, or multiple thereof,the controller 26 initially synchronizes with the zero cross of the ACvoltage source to acquire a reference for firing of the electronic valve34, as indicated at step 104. Next, the controller 26 utilizes theprocessor 30 to sample any one, or all, dynamicism(s), as indicated atstep 108. The processor 30 then retrieves the soft-coded functioncoefficient(s) from the alterable memory device 68, as indicated at step112. After retrieving the function coefficient(s), the processor 30executes the generic algorithm, incorporating the dynamicism(s) and thefunction coefficient(s), to determine the firing angle solution for theelectronic valve for the given predetermined periodic interval, e.g. ahalf cycle, as indicated at step 116. The processor 30 then fires theelectronic valve 34 for the given periodic interval at the calculatedfiring angle, thereby operating the motor 14 in accordance with motoroperational parameters of the specific application of the motor 14, asindicated at step 120.

Although the generic algorithm has been described above to be hard-codedin memory device 66, in an alternate preferred embodiment, the genericalgorithm is soft-coded in an alterable memory device, such as memorydevice 68. Thus, in this embodiment, the generic algorithm can beprogrammed into the motor control module 10 subsequent to themanufacturing of the motor control module 10. Additionally, by storingthe generic algorithm in an alterable memory device, the genericalgorithm could be modified using an external programming device, anytime it is desirable to do so.

In an alternate embodiment, the firing angle solution, or duty cyclesolution, described below with reference to FIG. 3, is determined usingat least one look-up table stored in either the alterable ornon-alterable memory devices 68 and 66. That is, look-up table(s) areused as transfer functions to control any of the plurality of motors,such as motor 14, in any one of the plurality of applications.

An address, or index, of the look-up table(s) is any one of, or anycombination of, the dynamicisms suitably scaled or modified toaccommodate the range of possible look-up table addresses, i.e. inputs.That is, the dynamicisms are not generally suitable to be used directlyas indexes to the look-up table(s). The dynamicisms must be adjusted toaccommodate the input range of the addresses to the look-up table(s).For example, the electronic valve 34 has firing angle range of 0° to180° for normal sinusoidal AC power. Therefore, the dynamicisms must bemodified or scaled to generate firing angle solutions within the rangeof 0° to 180°. Similarly, the motor 14 may have some specified speedrange, e.g. 0 to 5000 revolutions per minute (rpm). Therefore, thedynamicisms must be modified or scaled to generate firing anglesolutions that will operate the motor 14 within the specified speedrange. Thus, the firing angle solution is still determined as a functionof the dynamicisms, generally expressed by the equation:

Firing angle solution=f(dynamicisms).

For example, on one embodiment, the generic algorithm could be morespecifically expressed by the following equation.

Look-up table address=K _(N)*dynamicismN+ . . . K ₂*dynamicism2+K₁*dynamicism1+K ₀;

where K is an offset or constant to bias the firing angle into thecorrect working range of operation for the particular implementation ofthe motor 14.

The address generated by the generic algorithm is input to the look-uptable(s) and thereby utilized to output a corresponding firing anglesolution stored in the look-up table(s). The content of the look-uptable comprises a plurality of predetermined firing angles for theelectronic valve 34. Thus, based on the input address, the correspondingfiring angle contained in the look-up table is output to control thetiming of the electronic valve 34.

The content of the look-up table(s) is predetermined based uponempirical data. In a preferred implementation, the empirical data usedto determine the content of the look-up table(s) is the same data usedto determine the generic firing angle control algorithm and allnecessary constants C₀ to C_(n+2), as described above. The look-uptable(s) can be permanently programmed into the non-alterable memorydevice 66 or the alterable memory device 68 prior to, or subsequent to,the control module 10 being implemented into the specific tool. Forexample, 130, or 256, or 512 firing angle solutions for the electronicvalve 34 could be stored in the look-up table(s) to be accessed by 130,or 256, or 512 addresses, or indexes, computed from the dynamicisms.

In a DC implementation wherein the motor 14 is a DC motor, as describedbelow, the look-up table(s) are utilized to determine a pulse widthmodulated (PWM) duty cycle, or some other suitable control function forthe motor 14. The address, or index, of the look-up table(s), asgenerated by the generic algorithm, is any one of, or any combinationof, the dynamicisms suitably scaled or modified to accommodate the rangeof possible look-up table addresses, i.e. inputs. For example, theelectronic valve 134 (shown in FIG. 3) has a duty cycle of 0% to 100 fornormal DC power. Therefore, the dynamicisms must be modified or scaledto generate duty cycle solutions within the range of 0% to 100%.Similarly, the motor 14 may have some specified speed range, e.g. 0 to5000 revolutions per minute (rpm). Therefore, the dynamicisms must bemodified or scaled to generate duty cycle solutions that will operatethe motor 14 within the specified speed range.

Thus, the duty cycle solution is also determined as a function of thedynamicisms, generally expressed by the equation:

Duty cycle solution=f(dynamicisms).

For example, on one embodiment, the generic algorithm could be morespecifically expressed by the following equation.

Look-up table address=K _(N)*dynamicismN+ . . . K ₂*dynamicism2+K₁*dynamicism1+K ₀;

where K is an offset or constant to bias the duty cycle into the correctworking range of operation for the particular implementation of themotor 14.

The address generated by the generic algorithm is input to the look-uptable(s) and thereby utilized to output a corresponding duty cyclesolution stored in the look-up table(s). The content, i.e. output, ofthe look-up table is the duty cycle solution, or other control function,for the electronic valve 34. As in the AC implementation, the look-uptable(s) can be permanently programmed into the non-alterable memorydevice 66 or the alterable memory device 68 prior to, or subsequent to,the control module 10 being implemented into the specific tool. Forexample, 130, or 256, or 512 duty cycle, or other control function,solutions for the electronic valve 34 could be stored in the look-uptable(s) to be accessed by 130, or 256, or 512 addresses, or indexes,computed from the dynamicisms.

The look-up tables can be multidimensional wherein the scaled ormodified dynamicisms are used as X-coordinates, i.e. inputs, of a firstlook-up table and the Y-coordinate, i.e. output, of the first look-uptable is then used as an X-coordinate, i.e. input, of a second look-uptable. The Y-coordinate, i.e. output, of the second look-up table thenyields the operational timing of the electronic valve 34, e.g. thefiring angle or duty cycle solution.

It is envisioned that the use of a look-up table(s) as transferfunctions could provide greater flexibility, significantly greaterspeed, and conserve space in the applicable memory device 66 or 68 thanthe use of the mathematical algorithm described above. Moreparticularly, the computational burden would be removed from thereal-time operation of the controller 26 having been transferred to theprior development of look-up table(s). The controller 26 need onlylook-up the correct firing angle or duty cycle, based on one or more ofthe plurality of dynamicisms, rather than compute the correct firingangle solution every full cycle, or multiple thereof.

In another embodiment, non-motor function tool operational parameters,e.g. tool features, can be programmed into the control module 10 usingsoft-coded coefficients. Such tool operational parameters controldifferent tool operating features for different tool applications. Forexample, the tool operational coefficients can control such tooloperating features as ‘no-volt’ tool operation, electronic clutchoperation, thermal overload protection and brush wear indication. Thetool features can be enabled and disabled within the particular tool,via execution of the generic control algorithm incorporating thesoft-coded tool operational coefficients or utilizing the look-uptable(s), as described above. Alternatively, the tool features can beenabled and disabled within the particular tool utilizing statediagrams, wherein the tool features can be sequenced between anoperational state and a non-operational state depending on conditionsdefined by soft-coded tool operational coefficients.

Furthermore, the tool features can be enabled and disabled within theparticular tool to control the operation features of the tool withoutaffecting the motor performance, i.e. function, coefficients. The tooloperational coefficients can be stored in the alterable memory device 68or the non-alterable memory device 66 subsequent to the manufacturing ofthe motor control module 10 and can be either permanently residentwithin the control module 10 or uploaded as needed. More specifically,the tool operational coefficients can be programmed into thenon-alterable memory device 66 prior to the control module 10 beinginstalled into the tool or uploaded to the alterable memory device 68,via an external communication device, subsequent to the control module10 being implemented in the tool. The external communication devicecould be any computer-based device capable of transmitting data, such asa laptop computer, a hand-held computer or any other programming device.

FIG. 3 is a simplified circuit diagram of a generic motor control module100 that is effectively the same as the motor control module 10,described above, utilized in a DC implementation. For clarity andsimplicity, components of the motor control module 100 that aresubstantially the same as components of the motor control module 10 areidentified in FIG. 3 using the reference numerals of FIG. 1 incrementedby 100. The motor control module 100 is connectable to a DC power source190, such as a battery, at DC terminals 120 a and 120 b. The controlcircuit 118 includes a power supply 122 that supplies power to acontroller 126, e.g. a microcontroller. The controller 126 includes aprocessor 130, e.g. a microprocessor, programmed to control anelectronic valve 134, such as a bipolar transistor, a field effecttransistor (FET), an insulated gate bipolar transistor (IGBT), orvarious voltage and/or current control devices. To control operation ofthe motor 114, the controller 126 controls the amount of current, andtherefore voltage, applied to the motor 114 by controlling the operationof the electronic valve 134.

The control circuit 118 additionally includes a shunt resistor 138. Thecontroller 126 includes an amplifier 156 used to amplify the voltageacross the shunt resistor 138 used by the controller 126 to measure thecurrent flowing through the electronic valve 134 and the motor 114. Thecontrol circuit 118 also includes a pair of pull-up resistors 158 and160 used to condition the voltage input at a ‘port 1’ and a ‘port 2’ ofthe controller 126.

Generally, the motor control module 100 controls the operation of themotor 114 by switching the motor current on and off at periodicintervals, via the controller 126 and control signals applied to acontrol input 134 a of the electronic valve 134. These periodicintervals are based on a pulse width modulated (PWM) duty cyclecalculated by the controller 126. The duty cycle stipulates the time andduration that the electronic valve 134 is fired, thereby deliveringelectrical energy to the motor 114.

The motor control module 100 controls the operation of the motor 114when a motor control switch 164, e.g. a tool On/Off switch, is placed ina closed (i.e. ‘On’) position, thereby allowing current to flow throughthe motor 114. Although motor control switch 164 is illustrated as beinglocated between the node 120 a and the motor 14, alternatively, themotor control switch 164 can be located between the node 120 a and theDC power source 190. To determine the duty cycle, the dynamicisms aremeasured during operation of the motor 114. As described above, thedynamicisms include, but are not limited to, such things as a closedloop dial, an open loop dial, an amount of current flowing through themotor 114 during operation, the voltage across the motor 114 duringoperation, an amount of torque provided by the motor 114, and a speed ofthe motor 114. For example, a first input 158 a could be a closed loopdial signal, or a tachometer signal or any other dynamicism signal.Likewise, a second input 158 b could be a motor speed signal, or an openloop dial signal or any other dynamicism signal. Dynamicisms include anymotor operational value or parameter that has an effect on thecalculation of the duty cycle for the electronic valve 134. As thedynamicisms change during operation, the duty cycle will also change.

To generate a timing solution for the electronic valve 134, i.e. thetiming and duration for which the electronic valve 134 is turned on, theprocessor 130 executes a universal generic control algorithm stored in afunctionally non-volatile memory device 166 included in the controller126. More specifically, to generate the duty cycle for the electronicvalve 134 the processor 130 executes a universal generic duty cyclecontrol algorithm. For example, memory device 166 could be a read onlymemory (ROM) device, a Flash Memory device or a one time programmable(OTP) device. Alternatively, the memory device 166 could be included inthe motor control module 100 external to the controller 126.

In one preferred embodiment, the generic duty cycle algorithm ishard-coded in the memory device 166 during manufacturing of the motorcontrol module 100. That is, the generic algorithm is stored innon-volatile memory device 166 as part of the process for manufacturingthe motor control module 100 and can not be altered or modified once itis stored in the memory device 166. Thus, the generic algorithm isapplicable to determine a timing solution, i.e. a duty cycle solution,for the electronic valve 134 for any of a plurality of motorapplications in which any of a plurality of motors, such as motor 114,are controlled by the motor control module 100. More specifically, thegeneric algorithm determines a duty cycle solution for any motor 114 inwhich the motor control module 100 is installed, such that the motor 114operates according to parameters specifically required for theparticular motor application.

The processor 130 executes the generic algorithm utilizing thedynamicisms as inputs, thereby determining a duty cycle solutionspecific to the particular motor 114 and the specific motor application.Generally, the generic algorithm can be expressed by the followingequation:

Duty cycle solution=f(dynamicisms)

For example, in one preferred embodiment, the generic algorithm could bemore specifically expressed by the following equation.

Duty cycle solution=f(f(switch position)+(f(dial setting 1)+f(dialsetting 2)+f(current)+f(voltage)+f(tachometer)+ . . . f(dynamicismn)+K)+M;

where ‘switch position’ refers to the position of the motor controlswitch 64, ‘dial setting 1’ refers to closed loop desired speed, ‘dialsetting 2’ refers to open loop firing angle clamp, ‘current’ refers tothe amount of current flowing through the motor 114, ‘voltage’ refers toa voltage value across the motor 114, and ‘tachometer’ refers to atachometric period or rate of rotational speed of the motor. The motorcontrol switch 164 controls the operational status of the motor 114.That is, if the motor control switch 164 is in an open position, themotor 114 is in an ‘Off’ operational status, while if the motor controlswitch 164 is in a closed position, the motor 114 is in an ‘On’operational status.

The controller 126 samples the dynamicisms using appropriate sensors orsensing circuits (not shown) for each dynamicism and utilizes theprocessor 130 to execute the generic algorithm to determine the properduty cycle solution for the electronic valve 134. Additionally, thegeneric algorithm utilizes at least one soft-coded function coefficientstored in a non-volatile alterable memory device 168 to determine theduty cycle solution such that the motor 114 functions in accordance withmotor operational parameters specific to the particular application ofthe motor 114. Generally, the motor operational parameters of a givenapplication will require the use of more than one function coefficientin the execution of the generic algorithm. Alterable memory device 168can be any suitable memory device that allows data to be stored, readand altered such as flash memory, erasable programmable read-only memory(EPROM) or electrically erasable programmable read-only memory (EEPROM).

In one preferred embodiment, the function coefficient(s) are stored inthe alterable memory device 168 subsequent to the manufacturing of themotor control module 100 and subsequent to the motor control module 100being implemented in a particular application. An external device (notshown) capable of communicating with the controller 126 is used toprogram (i.e. store) the function coefficient(s) in the alterable memorydevice 168. The external device communicates the function coefficient(s)to the alterable memory device 168 over any suitable means for datatransmission. For example, the function coefficient(s) can betransmitted from the external device to the alterable memory device 168over battery terminals, e.g. terminals 20 a and 20 b, of the associatedpower tool. Alternatively, the module 100 could be programmed after itsmanufacture but before being implemented in a particular application.

A further derivation of the generic algorithm incorporating the functioncoefficient(s) can be expressed by summing the products of thedynamicism(s) and associated function coefficient(s), as illustrated bythe following equation.

Firing angle solution=f((switch position*C ₀)+((dial setting 1*C_(i))+(dial setting 2*C ₂)+(current*C ₃)+(voltage*C ₄)+(tachometer*C ₅)+. . . (dynamicism n*C _(n))+C _(n+1))C _(n+2));

where the value for ‘switch position’ equals one (1) if the motorcontrol switch 64 is in a closed (i.e. ‘On’) position and zero (0) ifthe motor control switch 64 is in an open (i.e. ‘Off’) position.Additionally, C₀, C₁, C₂, C₃, C₄, C₅ . . . C_(n), C_(n+1), C_(n+2) arefunction coefficients specific to a particular application of the motor114, so that the motor 114 operates in accordance with desired motoroperational parameters of the particular application.

Thus, the processor 130 executes the generic algorithm, implementing thefunction coefficient(s) stored in alterable memory device 168, as aconstant value(s) in the algorithm, and utilizing the dynamicism(s) asan input variable(s) to determine the duty cycle solution for theelectronic valve 134. Since the dynamicism(s) is a variable, thecalculated duty cycle solution will change during operation of the motor114 due to variations in load requirements for the motor 114 and changesin function settings of the device in which the motor 114 is installed.For example, if the load requirement of the motor 114 changes duringoperation, the dynamicism for the current and/or the voltage being usedby the motor 114 will change leading to a change in the duty cyclesolution to compensate for the change in power needed by the motor 114.Additionally, if a user changes the speed setting on a power drill, theassociated dynamicism(s) will change, thereby altering the duty cyclesolution generated by the generic algorithm.

Although, in the various preferred embodiments described herein, themotor control module 100 has been described to execute the genericalgorithms shown above, it should be appreciated that the particularalgorithm described is exemplary only. As such the description of theexemplary algorithm does not exhaust all possible algorithms for use inimplementing the motor control module 100, in accordance with thepresent invention. Accordingly, changes in the algorithm described abovemay be made by those skilled in the art without departing from the scopeof the invention. For example, the generic algorithm could utilize alook-up table as a transfer function to generate duty cycle solutions,as described above. Additionally, although the DC implementation of thecontrol module 118 has been described above utilizing a PWM duty cycleto determine the timing of the electronic valve 134, it should beunderstood that any suitable discrete control function could be utilizedand remain with the scope of the invention.

Additionally, although various preferred embodiments described hereindisclose a controller, e.g. a microcontroller, implementation of themotor control module 10, it should be understood that the motor controlmodule 10 may also utilize other forms of digital circuitry. That is,the control circuit 18 of the motor control module 10 can include anyelectrical and semiconductor devices suitable to sample thedynamicism(s) and execute the generic algorithm, as described above. Forexample, control circuit 18 could be a discrete digital logic integratedcircuit, or an application specific integrated circuit (ASIC), or acombination of digital and analog circuitry, or any combination thereof.

FIG. 4 is flow chart 200 illustrating the general operation of the motorcontrol module 100 (shown in FIG. 2), in accordance with one preferredDC embodiment of the present invention. In a practical application ofthe motor control module 100, the controller 126 utilizes the processor130 to sample any one, or all, dynamicism(s), as indicated at step 204.The processor 130 then retrieves the soft-coded function coefficient(s)from the alterable memory device 168, as indicated at step 108. Afterretrieving the function coefficient(s), the processor 130 executes thegeneric algorithm, incorporating the dynamicism(s) and the functioncoefficient(s), to determine the duty cycle solution for the electronicvalve 134, as indicated at step 112. The processor 130 then fires theelectronic valve 134 in accordance with the duty cycle solution, therebyoperating the motor 114 in accordance with motor operational parametersof the specific application of the motor 114, as indicated at step 116.

While the invention has been described in terms of various specificembodiments, those skilled in the art will recognize that the inventioncan be practiced with modification within the spirit and scope of theclaims.

1. A power tool comprising: a motor selected from one of a plurality ofdifferent motors, wherein the plurality of motors has motors having atleast one of a different size, a different operational rating and adifferent type tailored to meet the specific operational needs of thepower tool; a motor control module having stored therein a genericcontrol algorithm executable to control operation the selected motor;wherein the motor control module is programmed with at least oneparameter utilized as a constant during execution of the generic controlalgorithm to transform the generic control algorithm from anon-tool-specific algorithm into a tool-specific algorithm specificallysuited for controlling the operation of the power tool and the selectedmotor.
 2. The power tool of claim 1, wherein the at least one parametercomprises at least one of: a non-motor specific parameter associatedwith a feature of the power tool; a motor-specific parameter fortailoring performance of the selected motor to the operationalrequirements of the power tool; and a look-up table utilized as atransfer function during execution of the non-tool-specific algorithm.3. The power tool of claim 2, wherein the motor control module isadapted to store a state diagram for enabling and disabling thenon-motor specific parameter.
 4. The power tool of claim 1, wherein themotor control module is further programmed with operating criteria forthe selected motor utilized as variables during execution of the genericcontrol algorithm, the selected motor operating criteria beingperiodically sampled during operation of the power tool.
 5. The powertool of claim 4, wherein the motor operating criteria comprises at leasttwo of: a trigger position; a closed loop dial; an open loop dial; acurrent flow through the selected motor; a voltage across the selectedmotor; and a selected motor speed.
 6. The power tool of claim 1, furthercomprising a processor adapted to execute the generic control algorithmto generate a timing solution for controlling a flow of current throughthe selected motor so that operation of the selected motor is tailoredin accordance with specific desired performance parameters of the powertool.
 7. The power tool of claim 6, wherein the timing solutioncomprises a firing angle solution for controlling the operation of anelectronic valve, the electronic valve being configured to control theflow of AC current through the selected motor.
 8. The power tool ofclaim 6, wherein the timing solution comprises a duty cycle solution forcontrolling the operation of an electronic valve configured to controlthe flow of DC current through the selected motor.
 9. A power toolcomprising: a motor selected from one of a plurality of differentmotors, wherein the plurality of motors has motors having at least oneof a different size, a different operational rating and a different typetailored to meet the specific operational needs of the power tool; amotor control module having stored therein a generic control algorithmexecutable to control operation the selected motor; the motor controlmodule being programmed with at least one parameter utilized as aconstant during execution of the generic control algorithm to transformthe generic control algorithm from a non-tool-specific algorithm into atool-specific algorithm specifically suited for controlling theoperation of the power tool and the selected motor; the at least oneparameter including at least one of: a non-motor specific parameterassociated with a feature of the power tool; and a motor-specificparameter for tailoring performance of the selected motor to theoperational requirements of the power tool.
 10. The power tool of claim9, wherein the at least one parameter includes a look-up table utilizedas a transfer function during execution of the non-tool-specificalgorithm.
 11. The power tool of claim 9, wherein the motor controlmodule is adapted to store a state diagram for enabling and disablingthe non-motor specific parameter.
 12. The power tool of claim 9, whereinthe motor control module is further programmed with operating criteriafor the selected motor utilized as variables during execution of thegeneric control algorithm, the selected motor operating criteria beingperiodically sampled during operation of the power tool.
 13. The powertool of claim 9, further comprising a processor adapted to execute thegeneric control algorithm to generate a timing solution for controllinga flow of current through the selected motor so that operation of theselected motor is tailored in accordance with specific desiredperformance parameters of the power tool.
 14. The power tool of claim13, wherein the timing solution comprises one of: a firing anglesolution for controlling the operation of an electronic valve, theelectronic valve being configured to control the flow of AC currentthrough the selected motor; and a duty cycle solution for controllingthe operation of an electronic valve configured to control the flow ofDC current through the selected motor.
 15. The power tool of claim 9,wherein the motor operating criteria comprises at least two of: atrigger position; a closed loop dial; an open loop dial; a current flowthrough the selected motor; a voltage across the selected motor; and aselected motor speed.